#pragma once

#include <gtl/io/file.h>
#include <gtl/type/inner.h>
#include <gtl/string/str.h>
#include <gtl/endian/endian.h>

namespace gtl
{

namespace media
{

class gif
{
public:
	gif()
	{
	}

public:
	inline bool open(const gtl::tchar* /*file_path*/);
};

bool gif::open(const gtl::tchar* file_path)
{
	gtl::file file;
	if(file_path == NULL || !file.open(file_path, _T("rb")))
		return false;

	if(file.size() == 0)
		return false;

	if(file.eof())
		return false;

	char marker[7] = {0};
	file.read(marker, 6);

	if(!gtl::str_warp(marker).icmp("gif", 3))
		return false;

	if(!gtl::str_warp(marker + 3).icmp("89a", 3) && !gtl::str_warp(marker + 3).icmp("87a", 3))
		return false;

	return true;
}

} // end of namespace media

} // end of namespace gtl